home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Linux Cubed Series 8: LINUX Games
/
Linux Cubed Series 8 - LINUX Games.iso
/
games
/
x11
/
strategy
/
shanghai.000
/
shanghai
/
shanghai-1.0
/
shanghai.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-05-30
|
6KB
|
216 lines
#include "board.h"
#include "forms.h"
#include "gui.h"
#include "shanghai.h"
int win_count = 0;
#ifdef DEBUGXEVENTS
void print_xevent(XEvent *event)
{
/* This function is not yet fully implemented! Add further messages
as needed */
static char *eventNames[LASTEvent] = {"","",
"KeyPress","KeyRelease","ButtonPress","ButtonRelease","MotionNotify",
"EnterNotify","LeaveNotify","FocusIn","FocusOut","KeymapNotify",
"Expose","GraphicsExpose","NoExpose","VisibilityNotify","CreateNotify",
"DestroyNotify","UnmapNotify","MapNotify","MapRequest","ReparentNotify",
"ConfigureNotify","ConfigureRequest","GravityNotify","ResizeRequest",
"CirculateNotify","CirculateRequest","PropertyNotify","SelectionClear",
"SelectionRequest","SelectionNotify","ColormapNotify","ClientMessage",
"MappingNotify" };
static char *modeNames[8] = {
"Normal","Grab","Ungrab","WhileGrabbed"};
static char *detailNames[8] = {
"Ancestor","Virtual","Inferior","Nonlinear","NonlinearVirtual","Pointer",
"PointerRoot","DetailNone"};
#define PRXEVSTD(e,t) \
fprintf(stderr,"%-18s(serial: 0x%lx, %sdisplay: 0x%lx, win: 0x%lx,", \
eventNames[(e)->t.type],(e)->t.serial, \
(e)->t.send_event ? "send_event, " : "", \
(unsigned long)(e)->t.display,(e)->xkey.window)
#define XNEWLINE "\n "
switch (event->type) {
case KeyPress:
case KeyRelease:
PRXEVSTD(event,xkey);
fprintf(stderr,XNEWLINE
"root: 0x%lx, subwin: 0x%lx, time: 0x%lx,"XNEWLINE
"pos(%d/%d), pos_root(%d/%d), state: 0x%x,"XNEWLINE
"keycode: 0x%x%s\n",
event->xkey.root,event->xkey.subwindow,event->xkey.time,
event->xkey.x,event->xkey.y,event->xkey.x_root,event->xkey.y_root,
event->xkey.state,event->xkey.keycode,event->xkey.same_screen ?
", same_screen" : "");
break;
case ButtonPress:
case ButtonRelease:
PRXEVSTD(event,xbutton);
fprintf(stderr,XNEWLINE
"root: 0x%lx, subwin: 0x%lx, time: 0x%lx,"XNEWLINE
"pos(%d/%d), pos_root(%d/%d), state: 0x%x,"XNEWLINE
"button: %d%s\n",
event->xbutton.root,event->xbutton.subwindow,event->xbutton.time,
event->xbutton.x,event->xbutton.y,event->xbutton.x_root,
event->xbutton.y_root,event->xbutton.state,
event->xbutton.button,event->xbutton.same_screen ?
", same_screen" : "");
break;
case MotionNotify:
PRXEVSTD(event,xmotion);
fprintf(stderr,XNEWLINE
"root: 0x%lx, subwin: 0x%lx, time: 0x%lx,"XNEWLINE
"pos(%d/%d), pos_root(%d/%d), state: 0x%x,"XNEWLINE
"Notify%s%s\n",
event->xmotion.root,event->xmotion.subwindow,event->xmotion.time,
event->xmotion.x,event->xmotion.y,event->xmotion.x_root,
event->xmotion.y_root,event->xmotion.state,event->xmotion.is_hint ?
"Hint" : "Normal",event->xmotion.same_screen ?
", same_screen" : "");
break;
case EnterNotify:
case LeaveNotify:
PRXEVSTD(event,xcrossing);
fprintf(stderr,XNEWLINE
"root: 0x%lx, subwin: 0x%lx, time: 0x%lx,"XNEWLINE
"pos(%d/%d), pos_root(%d/%d), Notify%s,"XNEWLINE
"Notify%s%s%s,"XNEWLINE
"state: 0x%x\n",
event->xcrossing.root,event->xcrossing.subwindow,
event->xcrossing.time,event->xcrossing.x,event->xcrossing.y,
event->xcrossing.x_root,event->xcrossing.y_root,
modeNames[event->xcrossing.mode],
detailNames[event->xcrossing.detail],
event->xcrossing.same_screen ? ", same_screen" : "",
event->xcrossing.focus ? ", focus" : "",
event->xcrossing.state);
break;
case FocusIn:
case FocusOut:
PRXEVSTD(event,xfocus);
fprintf(stderr,XNEWLINE
"Notify%s, Notify%s",
modeNames[event->xfocus.mode],detailNames[event->xfocus.detail]);
break;
case KeymapNotify:
PRXEVSTD(event,xkeymap);
fprintf(stderr,"\n");
break;
case Expose:
PRXEVSTD(event,xexpose);
fprintf(stderr,"\n");
break;
case GraphicsExpose:
PRXEVSTD(event,xgraphicsexpose);
fprintf(stderr,"\n");
break;
case NoExpose:
PRXEVSTD(event,xnoexpose);
fprintf(stderr,"\n");
break;
case VisibilityNotify:
PRXEVSTD(event,xvisibility);
fprintf(stderr,"\n");
break;
case CreateNotify:
PRXEVSTD(event,xcreatewindow);
fprintf(stderr,"\n");
break;
case DestroyNotify:
PRXEVSTD(event,xdestroywindow);
fprintf(stderr,"\n");
break;
case UnmapNotify:
PRXEVSTD(event,xunmap);
fprintf(stderr,"\n");
break;
case MapNotify:
PRXEVSTD(event,xmap);
fprintf(stderr,"\n");
break;
case MapRequest:
PRXEVSTD(event,xmaprequest);
fprintf(stderr,"\n");
break;
case ReparentNotify:
PRXEVSTD(event,xreparent);
fprintf(stderr,"\n");
break;
case ConfigureNotify:
PRXEVSTD(event,xconfigure);
fprintf(stderr,"\n");
break;
case ConfigureRequest:
PRXEVSTD(event,xconfigurerequest);
fprintf(stderr,"\n");
break;
case GravityNotify:
PRXEVSTD(event,xgravity);
fprintf(stderr,"\n");
break;
case ResizeRequest:
PRXEVSTD(event,xresizerequest);
fprintf(stderr,"\n");
break;
case CirculateNotify:
PRXEVSTD(event,xcirculate);
fprintf(stderr,"\n");
break;
case CirculateRequest:
PRXEVSTD(event,xcirculaterequest);
fprintf(stderr,"\n");
break;
case PropertyNotify:
PRXEVSTD(event,xproperty);
fprintf(stderr,"\n");
break;
case SelectionClear:
PRXEVSTD(event,xselectionclear);
fprintf(stderr,"\n");
break;
case SelectionRequest:
PRXEVSTD(event,xselectionrequest);
fprintf(stderr,"\n");
break;
case SelectionNotify:
PRXEVSTD(event,xselection);
fprintf(stderr,"\n");
break;
case ColormapNotify:
PRXEVSTD(event,xcolormap);
fprintf(stderr,"\n");
break;
case ClientMessage:
PRXEVSTD(event,xclient);
fprintf(stderr,"\n");
break;
case MappingNotify:
PRXEVSTD(event,xmapping);
fprintf(stderr,"\n");
break;
default:
fprintf(stderr,"Unknown event type %d\n",event->type);
break; }
return;
#undef PRXEVSTD
#undef XNEWLINE
}
#endif
int main(int argc,char *argv[])
{
FD_board *fd_board;
XEvent event;
fl_initialize(argv[0],"Shanghai",0,0,&argc,argv);
fd_board = new_board();
for (;;)
if (fl_do_forms() == FL_EVENT) {
fl_XNextEvent(&event);
fl_print_xevent_name("",&event); }
return(0);
}